package com.njtoyo.taxi.admin.rest.presenter.business.ride.call;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.njtoyo.taxi.admin.library.common.GeoPoint;
import com.njtoyo.taxi.admin.mapper.master.enums.AppointmentCallState;
import com.njtoyo.taxi.admin.mapper.master.enums.RealtimeCallCategory;
import com.njtoyo.taxi.admin.mapper.master.enums.RidePlatform;
import com.njtoyo.taxi.admin.rest.export.BooleanToChineseConverter;
import com.njtoyo.taxi.admin.rest.export.DateConverter;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@Data
public class RealTimeSinglePagePresenter implements Serializable {
    @ApiModelProperty(value = "id")
    @ExcelProperty(value = "订单号",index = 0)
    private Long id;

    @ApiModelProperty(value = "地区ID")
    @ExcelIgnore
    private Long areaId;

    @ApiModelProperty(value = "地区名称")
    @ExcelProperty(value = "地区",index = 2)
    private String areaName;

    @ApiModelProperty(value = "后台运营ID")
    @ExcelIgnore
    private Long cantonId;

    @ApiModelProperty(value = "后台运营名称")
    @ExcelProperty(value = "行政区",index = 1)
    private String cantonName;

    @ApiModelProperty(value = "实时单类型：0:realtime[正常实时单],1:assign[派单实时单]")
    @ExcelIgnore
    private RealtimeCallCategory category;

    @ApiModelProperty(value = "创建时间")
    @ExcelProperty(value = "下单时间",index = 11,converter = DateConverter.class)
    private Date createdAt;

    @ApiModelProperty(value = "乘客ID")
    @ExcelProperty(value = "编号",index = 5)
    private Long customerId;

    @ApiModelProperty(value = "乘客姓名")
    @ExcelProperty(value = "乘客",index = 4)
    private String name;

    @ApiModelProperty(value = "手机号码")
    @ExcelProperty(value = "电话",index = 6)
    private String mobileNumber;

    @ApiModelProperty(value = "目的地坐标")
    @ExcelIgnore
    private GeoPoint destination;

    @ApiModelProperty(value = "目的地名称")
    @ExcelProperty(value = "终点",index = 9)
    private String destinationName;

    @ApiModelProperty(value = "目的地详细路名")
    @ExcelProperty(value = "终点地址",index = 10)
    private String destinationPlaceName;

    @ApiModelProperty(value = "路程")
    @ExcelIgnore
    private Integer distance;

    @ApiModelProperty(value = "出发地坐标")
    @ExcelIgnore
    private GeoPoint origin;

    @ApiModelProperty(value = "出发地名称")
    @ExcelProperty(value = "起点",index = 7)
    private String originName;

    @ApiModelProperty(value = "起点详细路名")
    @ExcelProperty(value = "起点地址",index = 8)
    private String originPlaceName;

    @ApiModelProperty(value = "接驾时间")
    @ExcelIgnore
    private Date pickUpTime;

    @ApiModelProperty(value = "0:wxmina(微信小程序),1:app(APP),2:h5(h5网页),3:webkit(全澄通),4:h5Market(h5本地生活)")
    @ExcelIgnore
    private RidePlatform platform;

    @ApiModelProperty(value = "加价")
    @ExcelIgnore
    private Integer priceMarkup;

    @ApiModelProperty(value = "状态0:waiting;1:pick;2:cancelled;3:covered")
    @ExcelIgnore
    private AppointmentCallState state;

    @ApiModelProperty(value = "状态0:waiting;1:pick;2:cancelled;3:covered")
    @ExcelProperty(value = "订单状态",index = 12)
    private String orderState;

    @ApiModelProperty(value = "修改时间")
    @ExcelIgnore
    private Date updatedAt;

    @ApiModelProperty(value = "行程表ID")
    @ExcelIgnore
    private Long refId;

    @ExcelProperty(value = "是否预付单",index = 3,converter = BooleanToChineseConverter.class)
    private Boolean needPrepay;

    @ExcelIgnore
    private Integer prepayState;

    @ExcelIgnore
    private Boolean prepayIsRefund;

    @ExcelIgnore
    private BigDecimal prepayAmount;

    @ExcelIgnore
    private BigDecimal refundAmount;
}
